/**
 * TipoCargo.java
 * Fecha de creación: 25/09/2013, 15:35:04
 */
package mx.adventista.iglesia.modelo.catalogo;

/**
 * Tipos de cargos
 * @author Edgardo Zavala (edgardo.zavala@gmail.com)
 */

public enum Cargo {

	/**
	 * ADRA
	 */
	ADRA(1, "adra", "ADRA", true),
	/**
	 * Anciano
	 */
	ANCIANO(2, "anciano", "Anciano", true),
	/**
	 * Asociación Hogar y Escuela
	 */
	ASOCIACION_HOGAR_Y_ESCUELA(3, "asociacion_hogar_y_escuela", "Asociación Hogar y Escuela",
		true),
	/**
	 * Asociación Hogar y Escuela - Secretario/Tesorero
	 */
	ASOCIACION_HOGAR_Y_ESCUELA_SECRETARIO_TESORERO(4,
		"asociacion_hogar_y_escuela_secretario_tesorero",
		"Asociación Hogar y Escuela - Secretario/Tesorero", true),
	/**
	 * Aventureros
	 */
	AVENTUREROS(5, "aventureros", "Aventureros", true),
	/**
	 * Aventureros - Subdirector
	 */
	AVENTUREROS_SUBDIRECTOR(6, "aventureros_subdirector", "Aventureros - Subdirector", true),
	/**
	 * Canto / Coro
	 */
	CANTO_CORO(7, "canto_coro", "Canto / Coro", true),
	/**
	 * Comunicación
	 */
	COMUNICACION(8, "comunicacion", "Comunicación", true),
	/**
	 * Conquistadores
	 */
	CONQUISTADORES(9, "conquistadores", "Conquistadores", true),
	/**
	 * Conquistadores - Subdirector
	 */
	CONQUISTADORES_SUBDIRECTOR(10, "conquistadores_subdirector",
		"Conquistadores - Subdirector", true),
	/**
	 * Coordinador de Interesados
	 */
	COORDINADOR_DE_INTERESADOS(11, "coordinador_de_interesados", "Coordinador de Interesados",
		true),
	/**
	 * Diaconisa
	 */
	DIACONISA(12, "diaconisa", "Diaconisa", true),
	/**
	 * Diacono
	 */
	DIACONO(13, "diacono", "Diacono", true),
	/**
	 * Dorcas
	 */
	DORCAS(14, "dorcas", "Dorcas", true),
	/**
	 * Dorcas - Secretario/Tesorero
	 */
	DORCAS_SECRETARIO_TESORERO(15, "dorcas_secretario_tesorero",
		"Dorcas - Secretario/Tesorero", true),
	/**
	 * Educación
	 */
	EDUCACION(16, "educacion", "Educación", true),
	/**
	 * Escuela Bíblica de Vacaciones
	 */
	ESCUELA_BIBLICA_DE_VACACIONES(17, "escuela_biblica_de_vacaciones",
		"Escuela Bíblica de Vacaciones", true),
	/**
	 * Escuela Sabática
	 */
	ESCUELA_SABATICA(18, "escuela_sabatica", "Escuela Sabática", true),
	/**
	 * Escuela Sabática - Secretario(a)
	 */
	ESCUELA_SABATICA_SECRETARIO(19, "escuela_sabatica_secretario",
		"Escuela Sabática - Secretario(a)", true),
	/**
	 * Escuela Sabática - Subdirector(a)
	 */
	ESCUELA_SABATICA_SUBDIRECTOR(20, "escuela_sabatica_subdirector",
		"Escuela Sabática - Subdirector(a)", true),
	/**
	 * Escuela Sabática - Subdirector(a)
	 */
	ESCUELA_SABATICA_SUBDIRECTOR_DIVISIONES(21, "escuela_sabatica_subdirector_divisiones",
		"Escuela Sabática - Subdirector(a) divisiones", true),
	/**
	 * Escuela Sabática - Subsecretario(a)
	 */
	ESCUELA_SABATICA_SUBSECRETARIO(22, "escuela_sabatica_subsecretario",
		"Escuela Sabática - Subsecretario(a)", true),
	/**
	 * Grupo Pequeño
	 */
	GRUPO_PEQUENO(23, "grupo_pequeno", "Grupo Pequeño", true),
	/**
	 * Guías Mayores
	 */
	GUIAS_MAYORES(24, "guias_mayores", "Guías Mayores", true),
	/**
	 * Guías Mayores - Subdirector
	 */
	GUIAS_MAYORES_SUBDIRECTOR(25, "guias_mayores_subdirector", "Guías Mayores - Subdirector",
		true),
	/**
	 * Libertad religiosa
	 */
	LIBERTAD_RELIGIOSA(26, "libertad_religiosa", "Libertad religiosa", true),
	/**
	 * Mayordomía
	 */
	MAYORDOMIA(27, "mayordomia", "Mayordomía", true),
	/**
	 * Ministerio de la Familia (Vida familiar)
	 */
	MINISTERIO_DE_LA_FAMILIA(28, "ministerio_de_la_familia_(vida_familiar)",
		"Ministerio de la Familia (Vida familiar)", true),
	/**
	 * Ministerio de Salud y Temperancia
	 */
	MINISTERIO_DE_SALUD_Y_TEMPERANCIA(29, "ministerio_de_salud_y_temperancia",
		"Ministerio de Salud y Temperancia", true),
	/**
	 * Ministerio del Niño (Infantil)
	 */
	MINISTERIO_DEL_NINO(30, "ministerio_del_nino_(infantil)",
		"Ministerio del Niño (Infantil)", true),
	/**
	 * Ministerio Mujer
	 */
	MINISTERIO_MUJER(31, "ministerio_mujer", "Ministerio Mujer", true),
	/**
	 * Ministerio para Discapacitados
	 */
	MINISTERIO_PARA_DISCAPACITADOS(32, "ministerio_para_discapacitados",
		"Ministerio para Discapacitados", true),
	/**
	 * Ministerios Personales
	 */
	MINISTERIOS_PERSONALES(33, "ministerios_personales", "Ministerios Personales", true),
	/**
	 * Ministerios Personales - Secretario(a)
	 */
	MINISTERIOS_PERSONALES_SECRETARIO(34, "ministerios_personales_secretario",
		"Ministerios Personales - Secretario(a)", true),
	/**
	 * Música
	 */
	MUSICA(35, "musica", "Música", true),
	/**
	 * Obra Misionera
	 */
	OBRA_MISIONERA(36, "obra_misionera", "Obra Misionera", true),
	/**
	 * Otro
	 */
	OTRO(37, "otro", "Otro", true),
	/**
	 * Pastor
	 */
	PASTOR(38, "pastor", "Pastor", true),
	/**
	 * Pianista / Organista
	 */
	PIANISTA_ORGANISTA(39, "pianista_organista", "Pianista / Organista", true),
	/**
	 * Publicaciones
	 */
	PUBLICACIONES(40, "publicaciones", "Publicaciones", true),
	/**
	 * Secretario(a)
	 */
	SECRETARIO(41, "secretario", "Secretario(a)", true),
	/**
	 * Servicios a la comunidad
	 */
	SERVICIOS_A_LA_COMUNIDAD(42, "servicios_a_la_comunidad", "Servicios a la comunidad", true),
	/**
	 * Sociedad de Menores
	 */
	SOCIEDAD_DE_MENORES(43, "sociedad_de_menores", "Sociedad de Menores", true),
	/**
	 * Sociedad de Menores - Subdirector
	 */
	SOCIEDAD_DE_MENORES_SUBDIRECTOR(44, "sociedad_de_menores_subdirector",
		"Sociedad de Menores - Subdirector", true),
	/**
	 * Sociedad Jóvenes
	 */
	SOCIEDAD_JOVENES(45, "sociedad_jovenes", "Sociedad Jóvenes", true),
	/**
	 * Sociedad Jóvenes - Consejero
	 */
	SOCIEDAD_JOVENES_CONSEJERO(46, "sociedad_jovenes_consejero",
		"Sociedad Jóvenes - Consejero", true),
	/**
	 * Sociedad Jóvenes - Música
	 */
	SOCIEDAD_JOVENES_MUSICA(47, "sociedad_jovenes_musica", "Sociedad Jóvenes - Música", true),
	/**
	 * Sociedad Jóvenes - Pianista/organista
	 */
	SOCIEDAD_JOVENES_PIANISTA_ORGANISTA(48, "sociedad_jovenes_pianista_organista",
		"Sociedad Jóvenes - Pianista/organista", true),
	/**
	 * Sociedad Jóvenes - Secretario/Tesorero
	 */
	SOCIEDAD_JOVENES_SECRETARIO_TESORERO(49, "sociedad_jovenes_secretario_tesorero",
		"Sociedad Jóvenes - Secretario/Tesorero", true),
	/**
	 * Sociedad Jóvenes - Subdirector
	 */
	SOCIEDAD_JOVENES_SUBDIRECTOR(50, "sociedad_jovenes_subdirector",
		"Sociedad Jóvenes - Subdirector", true),
	/**
	 * Sociedad Jóvenes - Subsecretario/tesorero
	 */
	SOCIEDAD_JOVENES_SUBSECRETARIO_TESORERO(51, "sociedad_jovenes_subsecretario_tesorero",
		"Sociedad Jóvenes - Subsecretario/tesorero", true),
	/**
	 * Tesorería
	 */
	TESORERIA(52, "tesoreria", "Tesorería", true),
	/**
	 * Tesorería - Auditor
	 */
	TESORERIA_AUDITOR(53, "tesoreria_auditor", "Tesorería - Auditor", true);

	private int id;
	private String clave;
	private String descripcion;
	private boolean activo;

	private Cargo(int id, String clave, String descripcion, boolean activo) {
		this.id = id;
		this.clave = clave;
		this.descripcion = descripcion;
		this.activo = activo;
	}

	/**
	 * Obtiene el enum a partir del identificador
	 * @author Edgardo Zavala (edgardo.zavala@gmail.com)
	 * @param id
	 * @return {@link Cargo}
	 */
	public static Cargo valueOf(int id) {
		for (Cargo tipoCargo : values()) {
			if (tipoCargo.getId() == id) {
				return tipoCargo;
			}
		}

		throw new IllegalArgumentException("id invalido para obtener el tipo de cargo: " + id);

	}

	/**
	 * @return el atributo id
	 */
	public int getId() {
		return id;
	}

	/**
	 * @return el atributo clave
	 */
	public String getClave() {
		return clave;
	}

	/**
	 * @return el atributo descripcion
	 */
	public String getDescripcion() {
		return descripcion;
	}

	/**
	 * @return el atributo activo
	 */
	public boolean isActivo() {
		return activo;
	}

}
